#ifndef PROPRIETARYGFFREADER_H
#define PROPRIETARYGFFREADER_H

#include <QObject>
#include <QString>
#include <QDebug>
#include <QProcess>
#include <QFile>
#include <QDir>
#include <QApplication>
#include <QThread>

#include "../BaseDataManagement/gffreader.h"
#include "proprietarygenomeelementdatapacket.h"

class ProprietaryGffReader : public GffReader
{
    Q_OBJECT
public:
    explicit ProprietaryGffReader(QString gffFileName, QHash<QString, QString> clusterHashTable, QObject *parent = 0);
    
signals:
    
public slots:
    void process();

private:
    //Note- I have this function because seqId in this data set is not in the usual spot- not in the first column
    void processFirstColumnsInLine( QStringList line, QString& seqId, QString& source, QString& type, int& start, int& stop, bool& posStrand );
    void processRemainingData(QStringList& tokens, QString& parentContigId, bool& hasCluster, QString& clusterId,
                              bool& hasSpecies, QString& species,
                              QString& uniprot, QString& description, QString& name,
                              int& perc_qry_cvrg, int& perc_hit_cvrg, int& perc_ident );
    
    QHash<QString, QString> clusterHashTable;/**cluster hash table passed in as variable.  Stores relationship between geneId and clusterId.  geneId.contains(clusterKey) == true if it is a match.*/
};

#endif // PROPRIETARYGFFREADER_H
